// 引入mysql的配置文件
const db = require('../config/db');
// 模型
const Model = db.Model;
// 数据类型
const DataTypes = db.DataTypes;
const sequelize = db.sequelize;
// const moment = require('moment');


class User extends Model {}
User.init({
    id:{
        type:DataTypes.INTEGER,
        autoIncrement:true,
        allowNull:false,
        primaryKey:true,
        unique:true
    },
    // 用户名
    username:{
        type:DataTypes.STRING,
        allowNull:false,
        field:'username'
    },
    // 用户昵称
    nickname:{
        type:DataTypes.STRING,
        allowNull:false,
        field:'nickname',
        get(){
            return this.getDataValue("nickname")
        }
    },
    mobile:{
        type:DataTypes.STRING(11),
        allowNull:false,
        unique:true,
        is:/^1(3|4|5|6|7|8|9)\d{9}$/,
        field:'mobile',
        set(value) {
            console.log(value)
            this.setDataValue('mobile', value);
        }
    },
    // 用户头像
    avator:{
        type:DataTypes.STRING,
        allowNull:true,
        defaultValue:'',
        field:'avator'
    },
    // 用户密码
    password:{
        type:DataTypes.STRING,
        allowNull:false,
        field:'password'
    },
    create_time:{
        type:DataTypes.DATE,
        defaultValue:DataTypes.NOW,
        field:'create_time'
    }
},{
    sequelize,// 我们需要传递连接实例
    modelName:'User',// 我们需要选择模型名称
    timestamps: true,//启用时间戳
    createdAt:false,//禁止自动创建createAt
    updatedAt: 'update_time'//重命名
})

// 如果表不存在,则创建该表(如果已经存在,则不执行任何操作)
User.sync();
module.exports = User;